sqlite: add virtual table support via createModule()#61544
Open
byteforge38 wants to merge 3 commits intonodejs:mainfrom
Open
sqlite: add virtual table support via createModule()#61544byteforge38 wants to merge 3 commits intonodejs:mainfrom
byteforge38 wants to merge 3 commits intonodejs:mainfrom
Conversation
Collaborator
|
Review requested:
|
Author
|
@araujogui Could you please review my pr? |
louwers
reviewed
Jan 27, 2026
Author
|
Please re-run CI check |
Author
|
anyone could review my pr please? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Expose SQLite's virtual table API through a new
database.createModule(name, options)method, wrappingsqlite3_create_module_v2().This enables users to create read-only virtual tables backed by JavaScript data sources. The registered module can be used in two ways:
SELECT * FROM module_name).CREATE VIRTUAL TABLE t USING module_name.Hidden columns can be used to pass parameters via table-valued function syntax (e.g.,
SELECT * FROM module_name(param1, param2)).The
optionsobject accepts:columns: Array of column definitions (name,type, optionalhidden)rows: Function returning an iterable of row arraysdirectOnly: Restrict usage to top-level SQL (default:false)useBigIntArguments: Pass integer parameters as BigInts (default:false)Column types are validated against
INTEGER,TEXT,REAL,BLOB, andANY. Column names are quoted to prevent SQL injection. AnidxNumbitmask is used to correctly map hidden column constraints betweenxBestIndexandxFilter.Fixes: #61539